-- 计算反击效果，返回伤害值（source为技能的受创方，反击的源）

return function(source, target)
    -- 需要抽取的附加属性对象，如果是宠物需要附加玩家上去
    local damage = 0;
    local sources = FormulaM.getPropTargets(source);
    if (source.type ~= OBJECT_TYPE_MONSTER) then
        -- 如果反击者是玩家，那么需要取得所有宠物和玩家的附加属性
        -- 因为受创时其实是所有人一起受创
        sources = _G.templet:getFriends(source);
    end

    -- 26： 以攻击反击
    local prop = FormulaM.combineProp(sources, 26);
    if (prop[2] > 0) then
        -- 有这样的附加属性，计算攻击伤害
        damage = damage + FormulaM.invoke("ATTACK_DAMAGE", source, target, source.Attack, prop[2], 0);
    end

    -- 27：以魔法反击
    prop = FormulaM.combineProp(sources, 27);
    if (prop[2] > 0) then
        -- 有这样的附加属性，计算攻击伤害
        damage = damage + FormulaM.invoke("MAGIC_DAMAGE", source, target, source.Magic, prop[2], 0);
    end

    -- 返回结果
    return damage;
end